/***************************************************************************
创建者：华磊
 开始时间：               : 2020.1１.２４
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   io窗口程序
*                                                                         *
 ***************************************************************************/
#include "aistatus.h"
#include "ui_aistatus.h"
#include "systemstatus.h"
#include <QStandardItemModel>
#include <QMessageBox>

AiStatus::AiStatus(int styleId,QWidget *parent) :
    QWidget(parent),
    ui(new Ui::AiStatus)
{
    ui->setupUi(this);
    initialDisplayStyle(styleId);

    setTableView();

    initFlag = true;
}

AiStatus::~AiStatus()
{
    delete ui;
}

void AiStatus::initialDisplayStyle(int styleId)
{
    switch (styleId) {
    case 1:
        ui->tableView->setGeometry(10,35,440,350);
        ui->textEdit->setGeometry(10,400,300,40);
        ui->pushButton_2->setGeometry(370,400,76,41);
        break;
    default:
        break;
    }

}

void AiStatus::on_pushButton_clicked()
{
    int t =ui->lineEdit->text().toInt();
    ui->tableView->selectRow(t-1);
}

void AiStatus::showAiStatusView()
{
    emit aiStatusSearch();
}

void AiStatus::changeLanguage()
{
    ui->retranslateUi(this);
    setTableView();
}

void AiStatus::setTableView()
{
    model = new QStandardItemModel();
    ui->tableView->setModel(model);
    model->setColumnCount(3);

    headerView = ui->tableView->horizontalHeader();
//    headerView->setResizeMode(QHeaderView::Fixed);

    ui->tableView->setColumnWidth(0,100);
    ui->tableView->setColumnWidth(1,100);
    ui->tableView->setColumnWidth(2,240);
    ui->tableView->verticalHeader()->hide();
    ui->tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择模式，选择单行
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

    model->setHeaderData(0,Qt::Horizontal,tr("序号"));
    model->setHeaderData(1,Qt::Horizontal,tr("值"));
    model->setHeaderData(2,Qt::Horizontal,tr("说明"));
}

void AiStatus::updateView()
{
    int n=aiValue.size();
    if(initFlag)
    {
        model->setRowCount(n);
    }
    for(int i=0;i<n;i++)
    {
        if(initFlag)
        {
            model->setItem(i,0,new QStandardItem( QString::number(i+1) ));
            model->setItem(i,1,new QStandardItem( QString::number(aiValue[i]) ));

            if(note.size() == n)
            {
                model->setItem(i,2,new QStandardItem(note[i]));
            }

            model->item(i,0)->setTextAlignment(Qt::AlignCenter);
        }
        else
        {
            if(model->item(i,1)->text() != QString::number(aiValue[i]))
            {
                model->item(i,1)->setText(QString::number(aiValue[i]));
            }
        }
    }
    initFlag = false;//初始化完成
}

void AiStatus::on_pushButton_2_clicked()
{
    if(ui->tableView->currentIndex().row()>=0)
    {
        if(ui->textEdit->toPlainText().length()==0)
        {
            QMessageBox::information(this,tr("Error"),QStringLiteral("添加注释不能为空"),QMessageBox::Ok);
        }
        else
        {
            int i=ui->tableView->currentIndex().row();
            //note.push_back(ui->textEdit->toPlainText());
            emit setNote(i+1,ui->textEdit->toPlainText());

            //update view
            note[i] = ui->textEdit->toPlainText();
            model->item(i,2)->setText(note[i]);
        }

    }
}
